{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Interactions and ANOVA"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: This script is based heavily on Jonathan Taylor's class notes http://www.stanford.edu/class/stats191/interactions.html\n",
    "\n",
    "Download and format data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from urllib.request import urlopen\n",
    "import numpy as np\n",
    "np.set_printoptions(precision=4, suppress=True)\n",
    "\n",
    "import pandas as pd\n",
    "pd.set_option(\"display.width\", 100)\n",
    "import matplotlib.pyplot as plt\n",
    "from statsmodels.formula.api import ols\n",
    "from statsmodels.graphics.api import interaction_plot, abline_plot\n",
    "from statsmodels.stats.anova import anova_lm\n",
    "\n",
    "try:\n",
    "    salary_table = pd.read_csv('salary.table')\n",
    "except:  # recent pandas can read URL without urlopen\n",
    "    url = 'http://stats191.stanford.edu/data/salary.table'\n",
    "    fh = urlopen(url)\n",
    "    salary_table = pd.read_table(fh)\n",
    "    salary_table.to_csv('salary.table')\n",
    "\n",
    "E = salary_table.E\n",
    "M = salary_table.M\n",
    "X = salary_table.X\n",
    "S = salary_table.S"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Take a look at the data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6,6))\n",
    "symbols = ['D', '^']\n",
    "colors = ['r', 'g', 'blue']\n",
    "factor_groups = salary_table.groupby(['E','M'])\n",
    "for values, group in factor_groups:\n",
    "    i,j = values\n",
    "    plt.scatter(group['X'], group['S'], marker=symbols[j], color=colors[i-1],\n",
    "               s=144)\n",
    "plt.xlabel('Experience');\n",
    "plt.ylabel('Salary');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Fit a linear model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      S   R-squared:                       0.957\n",
      "Model:                            OLS   Adj. R-squared:                  0.953\n",
      "Method:                 Least Squares   F-statistic:                     226.8\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           2.23e-27\n",
      "Time:                        14:57:32   Log-Likelihood:                -381.63\n",
      "No. Observations:                  46   AIC:                             773.3\n",
      "Df Residuals:                      41   BIC:                             782.4\n",
      "Df Model:                           4                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept   8035.5976    386.689     20.781      0.000    7254.663    8816.532\n",
      "C(E)[T.2]   3144.0352    361.968      8.686      0.000    2413.025    3875.045\n",
      "C(E)[T.3]   2996.2103    411.753      7.277      0.000    2164.659    3827.762\n",
      "C(M)[T.1]   6883.5310    313.919     21.928      0.000    6249.559    7517.503\n",
      "X            546.1840     30.519     17.896      0.000     484.549     607.819\n",
      "==============================================================================\n",
      "Omnibus:                        2.293   Durbin-Watson:                   2.237\n",
      "Prob(Omnibus):                  0.318   Jarque-Bera (JB):                1.362\n",
      "Skew:                          -0.077   Prob(JB):                        0.506\n",
      "Kurtosis:                       2.171   Cond. No.                         33.5\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "formula = 'S ~ C(E) + C(M) + X'\n",
    "lm = ols(formula, salary_table).fit()\n",
    "print(lm.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Have a look at the created design matrix: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0., 0., 1., 1.],\n",
       "       [1., 0., 1., 0., 1.],\n",
       "       [1., 0., 1., 1., 1.],\n",
       "       [1., 1., 0., 0., 1.],\n",
       "       [1., 0., 1., 0., 1.]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.model.exog[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or since we initially passed in a DataFrame, we have a DataFrame available in"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Intercept</th>\n",
       "      <th>C(E)[T.2]</th>\n",
       "      <th>C(E)[T.3]</th>\n",
       "      <th>C(M)[T.1]</th>\n",
       "      <th>X</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Intercept  C(E)[T.2]  C(E)[T.3]  C(M)[T.1]    X\n",
       "0        1.0        0.0        0.0        1.0  1.0\n",
       "1        1.0        0.0        1.0        0.0  1.0\n",
       "2        1.0        0.0        1.0        1.0  1.0\n",
       "3        1.0        1.0        0.0        0.0  1.0\n",
       "4        1.0        0.0        1.0        0.0  1.0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.model.data.orig_exog[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We keep a reference to the original untouched data in"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>S</th>\n",
       "      <th>X</th>\n",
       "      <th>E</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>13876</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>11608</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>18701</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>11283</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>11767</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0      S  X  E  M\n",
       "0           0  13876  1  1  1\n",
       "1           1  11608  1  3  0\n",
       "2           2  18701  1  3  1\n",
       "3           3  11283  1  2  0\n",
       "4           4  11767  1  3  0"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lm.model.data.frame[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Influence statistics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "==================================================================================================\n",
      "       obs      endog     fitted     Cook's   student.   hat diag    dffits   ext.stud.     dffits\n",
      "                           value          d   residual              internal   residual           \n",
      "--------------------------------------------------------------------------------------------------\n",
      "         0  13876.000  15465.313      0.104     -1.683      0.155     -0.722     -1.723     -0.739\n",
      "         1  11608.000  11577.992      0.000      0.031      0.130      0.012      0.031      0.012\n",
      "         2  18701.000  18461.523      0.001      0.247      0.109      0.086      0.244      0.085\n",
      "         3  11283.000  11725.817      0.005     -0.458      0.113     -0.163     -0.453     -0.162\n",
      "         4  11767.000  11577.992      0.001      0.197      0.130      0.076      0.195      0.075\n",
      "         5  20872.000  19155.532      0.092      1.787      0.126      0.678      1.838      0.698\n",
      "         6  11772.000  12272.001      0.006     -0.513      0.101     -0.172     -0.509     -0.170\n",
      "         7  10535.000   9127.966      0.056      1.457      0.116      0.529      1.478      0.537\n",
      "         8  12195.000  12124.176      0.000      0.074      0.123      0.028      0.073      0.027\n",
      "         9  12313.000  12818.185      0.005     -0.516      0.091     -0.163     -0.511     -0.161\n",
      "        10  14975.000  16557.681      0.084     -1.655      0.134     -0.650     -1.692     -0.664\n",
      "        11  21371.000  19701.716      0.078      1.728      0.116      0.624      1.772      0.640\n",
      "        12  19800.000  19553.891      0.001      0.252      0.096      0.082      0.249      0.081\n",
      "        13  11417.000  10220.334      0.033      1.227      0.098      0.405      1.234      0.408\n",
      "        14  20263.000  20100.075      0.001      0.166      0.093      0.053      0.165      0.053\n",
      "        15  13231.000  13216.544      0.000      0.015      0.114      0.005      0.015      0.005\n",
      "        16  12884.000  13364.369      0.004     -0.488      0.082     -0.146     -0.483     -0.145\n",
      "        17  13245.000  13910.553      0.007     -0.674      0.075     -0.192     -0.669     -0.191\n",
      "        18  13677.000  13762.728      0.000     -0.089      0.113     -0.032     -0.087     -0.031\n",
      "        19  15965.000  17650.049      0.082     -1.747      0.119     -0.642     -1.794     -0.659\n",
      "        20  12336.000  11312.702      0.021      1.043      0.087      0.323      1.044      0.323\n",
      "        21  21352.000  21192.443      0.001      0.163      0.091      0.052      0.161      0.051\n",
      "        22  13839.000  14456.737      0.006     -0.624      0.070     -0.171     -0.619     -0.170\n",
      "        23  22884.000  21340.268      0.052      1.579      0.095      0.511      1.610      0.521\n",
      "        24  16978.000  18742.417      0.083     -1.822      0.111     -0.644     -1.877     -0.664\n",
      "        25  14803.000  15549.105      0.008     -0.751      0.065     -0.199     -0.747     -0.198\n",
      "        26  17404.000  19288.601      0.093     -1.944      0.110     -0.684     -2.016     -0.709\n",
      "        27  22184.000  22284.811      0.000     -0.103      0.096     -0.034     -0.102     -0.033\n",
      "        28  13548.000  12405.070      0.025      1.162      0.083      0.350      1.167      0.352\n",
      "        29  14467.000  13497.438      0.018      0.987      0.086      0.304      0.987      0.304\n",
      "        30  15942.000  16641.473      0.007     -0.705      0.068     -0.190     -0.701     -0.189\n",
      "        31  23174.000  23377.179      0.001     -0.209      0.108     -0.073     -0.207     -0.072\n",
      "        32  23780.000  23525.004      0.001      0.260      0.092      0.083      0.257      0.082\n",
      "        33  25410.000  24071.188      0.040      1.370      0.096      0.446      1.386      0.451\n",
      "        34  14861.000  14043.622      0.014      0.834      0.091      0.263      0.831      0.262\n",
      "        35  16882.000  17733.841      0.012     -0.863      0.077     -0.249     -0.860     -0.249\n",
      "        36  24170.000  24469.547      0.003     -0.312      0.127     -0.119     -0.309     -0.118\n",
      "        37  15990.000  15135.990      0.018      0.878      0.104      0.300      0.876      0.299\n",
      "        38  26330.000  25163.556      0.035      1.202      0.109      0.420      1.209      0.422\n",
      "        39  17949.000  18826.209      0.017     -0.897      0.093     -0.288     -0.895     -0.287\n",
      "        40  25685.000  26108.099      0.008     -0.452      0.169     -0.204     -0.447     -0.202\n",
      "        41  27837.000  26802.108      0.039      1.087      0.141      0.440      1.089      0.441\n",
      "        42  18838.000  19918.577      0.033     -1.119      0.117     -0.407     -1.123     -0.408\n",
      "        43  17483.000  16774.542      0.018      0.743      0.138      0.297      0.739      0.295\n",
      "        44  19207.000  20464.761      0.052     -1.313      0.131     -0.511     -1.325     -0.515\n",
      "        45  19346.000  18959.278      0.009      0.423      0.208      0.216      0.419      0.214\n",
      "==================================================================================================\n"
     ]
    }
   ],
   "source": [
    "infl = lm.get_influence()\n",
    "print(infl.summary_table())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "or get a dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_infl = infl.summary_frame()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dfb_Intercept</th>\n",
       "      <th>dfb_C(E)[T.2]</th>\n",
       "      <th>dfb_C(E)[T.3]</th>\n",
       "      <th>dfb_C(M)[T.1]</th>\n",
       "      <th>dfb_X</th>\n",
       "      <th>cooks_d</th>\n",
       "      <th>standard_resid</th>\n",
       "      <th>hat_diag</th>\n",
       "      <th>dffits_internal</th>\n",
       "      <th>student_resid</th>\n",
       "      <th>dffits</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.505123</td>\n",
       "      <td>0.376134</td>\n",
       "      <td>0.483977</td>\n",
       "      <td>-0.369677</td>\n",
       "      <td>0.399111</td>\n",
       "      <td>0.104186</td>\n",
       "      <td>-1.683099</td>\n",
       "      <td>0.155327</td>\n",
       "      <td>-0.721753</td>\n",
       "      <td>-1.723037</td>\n",
       "      <td>-0.738880</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.004663</td>\n",
       "      <td>0.000145</td>\n",
       "      <td>0.006733</td>\n",
       "      <td>-0.006220</td>\n",
       "      <td>-0.004449</td>\n",
       "      <td>0.000029</td>\n",
       "      <td>0.031318</td>\n",
       "      <td>0.130266</td>\n",
       "      <td>0.012120</td>\n",
       "      <td>0.030934</td>\n",
       "      <td>0.011972</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.013627</td>\n",
       "      <td>0.000367</td>\n",
       "      <td>0.036876</td>\n",
       "      <td>0.030514</td>\n",
       "      <td>-0.034970</td>\n",
       "      <td>0.001492</td>\n",
       "      <td>0.246931</td>\n",
       "      <td>0.109021</td>\n",
       "      <td>0.086377</td>\n",
       "      <td>0.244082</td>\n",
       "      <td>0.085380</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.083152</td>\n",
       "      <td>-0.074411</td>\n",
       "      <td>0.009704</td>\n",
       "      <td>0.053783</td>\n",
       "      <td>0.105122</td>\n",
       "      <td>0.005338</td>\n",
       "      <td>-0.457630</td>\n",
       "      <td>0.113030</td>\n",
       "      <td>-0.163364</td>\n",
       "      <td>-0.453173</td>\n",
       "      <td>-0.161773</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.029382</td>\n",
       "      <td>0.000917</td>\n",
       "      <td>0.042425</td>\n",
       "      <td>-0.039198</td>\n",
       "      <td>-0.028036</td>\n",
       "      <td>0.001166</td>\n",
       "      <td>0.197257</td>\n",
       "      <td>0.130266</td>\n",
       "      <td>0.076340</td>\n",
       "      <td>0.194929</td>\n",
       "      <td>0.075439</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   dfb_Intercept  dfb_C(E)[T.2]  dfb_C(E)[T.3]  dfb_C(M)[T.1]     dfb_X   cooks_d  standard_resid  \\\n",
       "0      -0.505123       0.376134       0.483977      -0.369677  0.399111  0.104186       -1.683099   \n",
       "1       0.004663       0.000145       0.006733      -0.006220 -0.004449  0.000029        0.031318   \n",
       "2       0.013627       0.000367       0.036876       0.030514 -0.034970  0.001492        0.246931   \n",
       "3      -0.083152      -0.074411       0.009704       0.053783  0.105122  0.005338       -0.457630   \n",
       "4       0.029382       0.000917       0.042425      -0.039198 -0.028036  0.001166        0.197257   \n",
       "\n",
       "   hat_diag  dffits_internal  student_resid    dffits  \n",
       "0  0.155327        -0.721753      -1.723037 -0.738880  \n",
       "1  0.130266         0.012120       0.030934  0.011972  \n",
       "2  0.109021         0.086377       0.244082  0.085380  \n",
       "3  0.113030        -0.163364      -0.453173 -0.161773  \n",
       "4  0.130266         0.076340       0.194929  0.075439  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_infl[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now plot the residuals within the groups separately:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "resid = lm.resid\n",
    "plt.figure(figsize=(6,6));\n",
    "for values, group in factor_groups:\n",
    "    i,j = values\n",
    "    group_num = i*2 + j - 1  # for plotting purposes\n",
    "    x = [group_num] * len(group)\n",
    "    plt.scatter(x, resid[group.index], marker=symbols[j], color=colors[i-1],\n",
    "            s=144, edgecolors='black')\n",
    "plt.xlabel('Group');\n",
    "plt.ylabel('Residuals');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we will test some interactions using anova or f_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      S   R-squared:                       0.961\n",
      "Model:                            OLS   Adj. R-squared:                  0.955\n",
      "Method:                 Least Squares   F-statistic:                     158.6\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           8.23e-26\n",
      "Time:                        14:57:33   Log-Likelihood:                -379.47\n",
      "No. Observations:                  46   AIC:                             772.9\n",
      "Df Residuals:                      39   BIC:                             785.7\n",
      "Df Model:                           6                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "===============================================================================\n",
      "                  coef    std err          t      P>|t|      [0.025      0.975]\n",
      "-------------------------------------------------------------------------------\n",
      "Intercept    7256.2800    549.494     13.205      0.000    6144.824    8367.736\n",
      "C(E)[T.2]    4172.5045    674.966      6.182      0.000    2807.256    5537.753\n",
      "C(E)[T.3]    3946.3649    686.693      5.747      0.000    2557.396    5335.333\n",
      "C(M)[T.1]    7102.4539    333.442     21.300      0.000    6428.005    7776.903\n",
      "X             632.2878     53.185     11.888      0.000     524.710     739.865\n",
      "C(E)[T.2]:X  -125.5147     69.863     -1.797      0.080    -266.826      15.796\n",
      "C(E)[T.3]:X  -141.2741     89.281     -1.582      0.122    -321.861      39.313\n",
      "==============================================================================\n",
      "Omnibus:                        0.432   Durbin-Watson:                   2.179\n",
      "Prob(Omnibus):                  0.806   Jarque-Bera (JB):                0.590\n",
      "Skew:                           0.144   Prob(JB):                        0.744\n",
      "Kurtosis:                       2.526   Cond. No.                         69.7\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "interX_lm = ols(\"S ~ C(E) * X + C(M)\", salary_table).fit()\n",
    "print(interX_lm.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Do an ANOVA check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid           ssr  df_diff       ss_diff         F    Pr(>F)\n",
      "0      41.0  4.328072e+07      0.0           NaN       NaN       NaN\n",
      "1      39.0  3.941068e+07      2.0  3.870040e+06  1.914856  0.160964\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      S   R-squared:                       0.999\n",
      "Model:                            OLS   Adj. R-squared:                  0.999\n",
      "Method:                 Least Squares   F-statistic:                     5517.\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           1.67e-55\n",
      "Time:                        14:57:33   Log-Likelihood:                -298.74\n",
      "No. Observations:                  46   AIC:                             611.5\n",
      "Df Residuals:                      39   BIC:                             624.3\n",
      "Df Model:                           6                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "=======================================================================================\n",
      "                          coef    std err          t      P>|t|      [0.025      0.975]\n",
      "---------------------------------------------------------------------------------------\n",
      "Intercept            9472.6854     80.344    117.902      0.000    9310.175    9635.196\n",
      "C(E)[T.2]            1381.6706     77.319     17.870      0.000    1225.279    1538.063\n",
      "C(E)[T.3]            1730.7483    105.334     16.431      0.000    1517.690    1943.806\n",
      "C(M)[T.1]            3981.3769    101.175     39.351      0.000    3776.732    4186.022\n",
      "C(E)[T.2]:C(M)[T.1]  4902.5231    131.359     37.322      0.000    4636.825    5168.222\n",
      "C(E)[T.3]:C(M)[T.1]  3066.0351    149.330     20.532      0.000    2763.986    3368.084\n",
      "X                     496.9870      5.566     89.283      0.000     485.728     508.246\n",
      "==============================================================================\n",
      "Omnibus:                       74.761   Durbin-Watson:                   2.244\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1037.873\n",
      "Skew:                          -4.103   Prob(JB):                    4.25e-226\n",
      "Kurtosis:                      24.776   Cond. No.                         79.0\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified."
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   df_resid           ssr  df_diff       ss_diff           F        Pr(>F)\n",
      "0      41.0  4.328072e+07      0.0           NaN         NaN           NaN\n",
      "1      39.0  1.178168e+06      2.0  4.210255e+07  696.844466  3.025504e-31\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in greater\n",
      "  return (self.a < x) & (x < self.b)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in less\n",
      "  return (self.a < x) & (x < self.b)\n",
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:1821: RuntimeWarning: invalid value encountered in less_equal\n",
      "  cond2 = cond0 & (x <= self.a)\n"
     ]
    }
   ],
   "source": [
    "from statsmodels.stats.api import anova_lm\n",
    "\n",
    "table1 = anova_lm(lm, interX_lm)\n",
    "print(table1)\n",
    "\n",
    "interM_lm = ols(\"S ~ X + C(E)*C(M)\", data=salary_table).fit()\n",
    "print(interM_lm.summary())\n",
    "\n",
    "table2 = anova_lm(lm, interM_lm)\n",
    "print(table2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The design matrix as a DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Intercept</th>\n",
       "      <th>C(E)[T.2]</th>\n",
       "      <th>C(E)[T.3]</th>\n",
       "      <th>C(M)[T.1]</th>\n",
       "      <th>C(E)[T.2]:C(M)[T.1]</th>\n",
       "      <th>C(E)[T.3]:C(M)[T.1]</th>\n",
       "      <th>X</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Intercept  C(E)[T.2]  C(E)[T.3]  C(M)[T.1]  C(E)[T.2]:C(M)[T.1]  C(E)[T.3]:C(M)[T.1]    X\n",
       "0        1.0        0.0        0.0        1.0                  0.0                  0.0  1.0\n",
       "1        1.0        0.0        1.0        0.0                  0.0                  0.0  1.0\n",
       "2        1.0        0.0        1.0        1.0                  0.0                  1.0  1.0\n",
       "3        1.0        1.0        0.0        0.0                  0.0                  0.0  1.0\n",
       "4        1.0        0.0        1.0        0.0                  0.0                  0.0  1.0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "interM_lm.model.data.orig_exog[:5]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The design matrix as an ndarray"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Intercept',\n",
       " 'C(E)[T.2]',\n",
       " 'C(E)[T.3]',\n",
       " 'C(M)[T.1]',\n",
       " 'C(E)[T.2]:C(M)[T.1]',\n",
       " 'C(E)[T.3]:C(M)[T.1]',\n",
       " 'X']"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "interM_lm.model.exog\n",
    "interM_lm.model.exog_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "infl = interM_lm.get_influence()\n",
    "resid = infl.resid_studentized_internal\n",
    "plt.figure(figsize=(6,6))\n",
    "for values, group in factor_groups:\n",
    "    i,j = values\n",
    "    idx = group.index\n",
    "    plt.scatter(X[idx], resid[idx], marker=symbols[j], color=colors[i-1],\n",
    "            s=144, edgecolors='black')\n",
    "plt.xlabel('X');\n",
    "plt.ylabel('standardized resids');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looks like one observation is an outlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "32\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      S   R-squared:                       0.955\n",
      "Model:                            OLS   Adj. R-squared:                  0.950\n",
      "Method:                 Least Squares   F-statistic:                     211.7\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           2.45e-26\n",
      "Time:                        14:57:33   Log-Likelihood:                -373.79\n",
      "No. Observations:                  45   AIC:                             757.6\n",
      "Df Residuals:                      40   BIC:                             766.6\n",
      "Df Model:                           4                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept   8044.7518    392.781     20.482      0.000    7250.911    8838.592\n",
      "C(E)[T.2]   3129.5286    370.470      8.447      0.000    2380.780    3878.277\n",
      "C(E)[T.3]   2999.4451    416.712      7.198      0.000    2157.238    3841.652\n",
      "C(M)[T.1]   6866.9856    323.991     21.195      0.000    6212.175    7521.796\n",
      "X            545.7855     30.912     17.656      0.000     483.311     608.260\n",
      "==============================================================================\n",
      "Omnibus:                        2.511   Durbin-Watson:                   2.265\n",
      "Prob(Omnibus):                  0.285   Jarque-Bera (JB):                1.400\n",
      "Skew:                          -0.044   Prob(JB):                        0.496\n",
      "Kurtosis:                       2.140   Cond. No.                         33.1\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n",
      "\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      S   R-squared:                       0.959\n",
      "Model:                            OLS   Adj. R-squared:                  0.952\n",
      "Method:                 Least Squares   F-statistic:                     147.7\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           8.97e-25\n",
      "Time:                        14:57:34   Log-Likelihood:                -371.70\n",
      "No. Observations:                  45   AIC:                             757.4\n",
      "Df Residuals:                      38   BIC:                             770.0\n",
      "Df Model:                           6                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "===============================================================================\n",
      "                  coef    std err          t      P>|t|      [0.025      0.975]\n",
      "-------------------------------------------------------------------------------\n",
      "Intercept    7266.0887    558.872     13.001      0.000    6134.711    8397.466\n",
      "C(E)[T.2]    4162.0846    685.728      6.070      0.000    2773.900    5550.269\n",
      "C(E)[T.3]    3940.4359    696.067      5.661      0.000    2531.322    5349.549\n",
      "C(M)[T.1]    7088.6387    345.587     20.512      0.000    6389.035    7788.243\n",
      "X             631.6892     53.950     11.709      0.000     522.473     740.905\n",
      "C(E)[T.2]:X  -125.5009     70.744     -1.774      0.084    -268.714      17.712\n",
      "C(E)[T.3]:X  -139.8410     90.728     -1.541      0.132    -323.511      43.829\n",
      "==============================================================================\n",
      "Omnibus:                        0.617   Durbin-Watson:                   2.194\n",
      "Prob(Omnibus):                  0.734   Jarque-Bera (JB):                0.728\n",
      "Skew:                           0.162   Prob(JB):                        0.695\n",
      "Kurtosis:                       2.468   Cond. No.                         68.7\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n",
      "\n",
      "   df_resid           ssr  df_diff       ss_diff         F    Pr(>F)\n",
      "0      40.0  4.320910e+07      0.0           NaN       NaN       NaN\n",
      "1      38.0  3.937424e+07      2.0  3.834859e+06  1.850508  0.171042\n",
      "\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid           ssr  df_diff       ss_diff            F        Pr(>F)\n",
      "0      40.0  4.320910e+07      0.0           NaN          NaN           NaN\n",
      "1      38.0  1.711881e+05      2.0  4.303791e+07  4776.734853  2.291239e-46\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "drop_idx = abs(resid).argmax()\n",
    "print(drop_idx)  # zero-based index\n",
    "idx = salary_table.index.drop(drop_idx)\n",
    "\n",
    "lm32 = ols('S ~ C(E) + X + C(M)', data=salary_table, subset=idx).fit()\n",
    "\n",
    "print(lm32.summary())\n",
    "print('\\n')\n",
    "\n",
    "interX_lm32 = ols('S ~ C(E) * X + C(M)', data=salary_table, subset=idx).fit()\n",
    "\n",
    "print(interX_lm32.summary())\n",
    "print('\\n')\n",
    "\n",
    "\n",
    "table3 = anova_lm(lm32, interX_lm32)\n",
    "print(table3)\n",
    "print('\\n')\n",
    "\n",
    "\n",
    "interM_lm32 = ols('S ~ X + C(E) * C(M)', data=salary_table, subset=idx).fit()\n",
    "\n",
    "table4 = anova_lm(lm32, interM_lm32)\n",
    "print(table4)\n",
    "print('\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Replot the residuals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "resid = interM_lm32.get_influence().summary_frame()['standard_resid']\n",
    "\n",
    "plt.figure(figsize=(6,6))\n",
    "resid = resid.reindex(X.index)\n",
    "for values, group in factor_groups:\n",
    "    i,j = values\n",
    "    idx = group.index\n",
    "    plt.scatter(X.loc[idx], resid.loc[idx], marker=symbols[j], color=colors[i-1],\n",
    "            s=144, edgecolors='black')\n",
    "plt.xlabel('X[~[32]]');\n",
    "plt.ylabel('standardized resids');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Plot the fitted values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lm_final = ols('S ~ X + C(E)*C(M)', data = salary_table.drop([drop_idx])).fit()\n",
    "mf = lm_final.model.data.orig_exog\n",
    "lstyle = ['-','--']\n",
    "\n",
    "plt.figure(figsize=(6,6))\n",
    "for values, group in factor_groups:\n",
    "    i,j = values\n",
    "    idx = group.index\n",
    "    plt.scatter(X[idx], S[idx], marker=symbols[j], color=colors[i-1],\n",
    "                s=144, edgecolors='black')\n",
    "    # drop NA because there is no idx 32 in the final model\n",
    "    fv = lm_final.fittedvalues.reindex(idx).dropna()\n",
    "    x = mf.X.reindex(idx).dropna()\n",
    "    plt.plot(x, fv, ls=lstyle[j], color=colors[i-1])\n",
    "plt.xlabel('Experience');\n",
    "plt.ylabel('Salary');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From our first look at the data, the difference between Master's and PhD in the management group is different than in the non-management group. This is an interaction between the two qualitative variables management,M and education,E. We can visualize this by first removing the effect of experience, then plotting the means within each of the 6 groups using interaction.plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "U = S - X * interX_lm32.params['X']\n",
    "\n",
    "plt.figure(figsize=(6,6))\n",
    "interaction_plot(E, M, U, colors=['red','blue'], markers=['^','D'],\n",
    "        markersize=10, ax=plt.gca())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Minority Employment Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "try:\n",
    "    jobtest_table = pd.read_table('jobtest.table')\n",
    "except:  # do not have data already\n",
    "    url = 'http://stats191.stanford.edu/data/jobtest.table'\n",
    "    jobtest_table = pd.read_table(url)\n",
    "\n",
    "factor_group = jobtest_table.groupby(['MINORITY'])\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6,6))\n",
    "colors = ['purple', 'green']\n",
    "markers = ['o', 'v']\n",
    "for factor, group in factor_group:\n",
    "    ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n",
    "                marker=markers[factor], s=12**2)\n",
    "ax.set_xlabel('TEST');\n",
    "ax.set_ylabel('JPERF');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                  JPERF   R-squared:                       0.517\n",
      "Model:                            OLS   Adj. R-squared:                  0.490\n",
      "Method:                 Least Squares   F-statistic:                     19.25\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           0.000356\n",
      "Time:                        14:57:44   Log-Likelihood:                -36.614\n",
      "No. Observations:                  20   AIC:                             77.23\n",
      "Df Residuals:                      18   BIC:                             79.22\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      1.0350      0.868      1.192      0.249      -0.789       2.859\n",
      "TEST           2.3605      0.538      4.387      0.000       1.230       3.491\n",
      "==============================================================================\n",
      "Omnibus:                        0.324   Durbin-Watson:                   2.896\n",
      "Prob(Omnibus):                  0.850   Jarque-Bera (JB):                0.483\n",
      "Skew:                          -0.186   Prob(JB):                        0.785\n",
      "Kurtosis:                       2.336   Cond. No.                         5.26\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "min_lm = ols('JPERF ~ TEST', data=jobtest_table).fit()\n",
    "print(min_lm.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(6,6));\n",
    "for factor, group in factor_group:\n",
    "    ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n",
    "                marker=markers[factor], s=12**2)\n",
    "\n",
    "ax.set_xlabel('TEST')\n",
    "ax.set_ylabel('JPERF')\n",
    "fig = abline_plot(model_results = min_lm, ax=ax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                  JPERF   R-squared:                       0.632\n",
      "Model:                            OLS   Adj. R-squared:                  0.589\n",
      "Method:                 Least Squares   F-statistic:                     14.59\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           0.000204\n",
      "Time:                        14:57:45   Log-Likelihood:                -33.891\n",
      "No. Observations:                  20   AIC:                             73.78\n",
      "Df Residuals:                      17   BIC:                             76.77\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "=================================================================================\n",
      "                    coef    std err          t      P>|t|      [0.025      0.975]\n",
      "---------------------------------------------------------------------------------\n",
      "Intercept         1.1211      0.780      1.437      0.169      -0.525       2.768\n",
      "TEST              1.8276      0.536      3.412      0.003       0.698       2.958\n",
      "TEST:MINORITY     0.9161      0.397      2.306      0.034       0.078       1.754\n",
      "==============================================================================\n",
      "Omnibus:                        0.388   Durbin-Watson:                   3.008\n",
      "Prob(Omnibus):                  0.823   Jarque-Bera (JB):                0.514\n",
      "Skew:                           0.050   Prob(JB):                        0.773\n",
      "Kurtosis:                       2.221   Cond. No.                         5.96\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "min_lm2 = ols('JPERF ~ TEST + TEST:MINORITY',\n",
    "        data=jobtest_table).fit()\n",
    "\n",
    "print(min_lm2.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(6,6));\n",
    "for factor, group in factor_group:\n",
    "    ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n",
    "                marker=markers[factor], s=12**2)\n",
    "\n",
    "fig = abline_plot(intercept = min_lm2.params['Intercept'],\n",
    "                 slope = min_lm2.params['TEST'], ax=ax, color='purple');\n",
    "fig = abline_plot(intercept = min_lm2.params['Intercept'],\n",
    "        slope = min_lm2.params['TEST'] + min_lm2.params['TEST:MINORITY'],\n",
    "        ax=ax, color='green');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                  JPERF   R-squared:                       0.572\n",
      "Model:                            OLS   Adj. R-squared:                  0.522\n",
      "Method:                 Least Squares   F-statistic:                     11.38\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           0.000731\n",
      "Time:                        14:57:46   Log-Likelihood:                -35.390\n",
      "No. Observations:                  20   AIC:                             76.78\n",
      "Df Residuals:                      17   BIC:                             79.77\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      0.6120      0.887      0.690      0.500      -1.260       2.483\n",
      "TEST           2.2988      0.522      4.400      0.000       1.197       3.401\n",
      "MINORITY       1.0276      0.691      1.487      0.155      -0.430       2.485\n",
      "==============================================================================\n",
      "Omnibus:                        0.251   Durbin-Watson:                   3.028\n",
      "Prob(Omnibus):                  0.882   Jarque-Bera (JB):                0.437\n",
      "Skew:                          -0.059   Prob(JB):                        0.804\n",
      "Kurtosis:                       2.286   Cond. No.                         5.72\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "min_lm3 = ols('JPERF ~ TEST + MINORITY', data = jobtest_table).fit()\n",
    "print(min_lm3.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(6,6));\n",
    "for factor, group in factor_group:\n",
    "    ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n",
    "                marker=markers[factor], s=12**2)\n",
    "\n",
    "fig = abline_plot(intercept = min_lm3.params['Intercept'],\n",
    "                 slope = min_lm3.params['TEST'], ax=ax, color='purple');\n",
    "fig = abline_plot(intercept = min_lm3.params['Intercept'] + min_lm3.params['MINORITY'],\n",
    "        slope = min_lm3.params['TEST'], ax=ax, color='green');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                  JPERF   R-squared:                       0.664\n",
      "Model:                            OLS   Adj. R-squared:                  0.601\n",
      "Method:                 Least Squares   F-statistic:                     10.55\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           0.000451\n",
      "Time:                        14:57:46   Log-Likelihood:                -32.971\n",
      "No. Observations:                  20   AIC:                             73.94\n",
      "Df Residuals:                      16   BIC:                             77.92\n",
      "Df Model:                           3                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "=================================================================================\n",
      "                    coef    std err          t      P>|t|      [0.025      0.975]\n",
      "---------------------------------------------------------------------------------\n",
      "Intercept         2.0103      1.050      1.914      0.074      -0.216       4.236\n",
      "TEST              1.3134      0.670      1.959      0.068      -0.108       2.735\n",
      "MINORITY         -1.9132      1.540     -1.242      0.232      -5.179       1.352\n",
      "TEST:MINORITY     1.9975      0.954      2.093      0.053      -0.026       4.021\n",
      "==============================================================================\n",
      "Omnibus:                        3.377   Durbin-Watson:                   3.015\n",
      "Prob(Omnibus):                  0.185   Jarque-Bera (JB):                1.330\n",
      "Skew:                           0.120   Prob(JB):                        0.514\n",
      "Kurtosis:                       1.760   Cond. No.                         13.8\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "min_lm4 = ols('JPERF ~ TEST * MINORITY', data = jobtest_table).fit()\n",
    "print(min_lm4.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8,6));\n",
    "for factor, group in factor_group:\n",
    "    ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n",
    "                marker=markers[factor], s=12**2)\n",
    "\n",
    "fig = abline_plot(intercept = min_lm4.params['Intercept'],\n",
    "                 slope = min_lm4.params['TEST'], ax=ax, color='purple');\n",
    "fig = abline_plot(intercept = min_lm4.params['Intercept'] + min_lm4.params['MINORITY'],\n",
    "        slope = min_lm4.params['TEST'] + min_lm4.params['TEST:MINORITY'],\n",
    "        ax=ax, color='green');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid        ssr  df_diff    ss_diff         F    Pr(>F)\n",
      "0      18.0  45.568297      0.0        NaN       NaN       NaN\n",
      "1      16.0  31.655473      2.0  13.912824  3.516061  0.054236\n"
     ]
    }
   ],
   "source": [
    "# is there any effect of MINORITY on slope or intercept?\n",
    "table5 = anova_lm(min_lm, min_lm4)\n",
    "print(table5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid        ssr  df_diff   ss_diff         F    Pr(>F)\n",
      "0      18.0  45.568297      0.0       NaN       NaN       NaN\n",
      "1      17.0  40.321546      1.0  5.246751  2.212087  0.155246\n"
     ]
    }
   ],
   "source": [
    "# is there any effect of MINORITY on intercept\n",
    "table6 = anova_lm(min_lm, min_lm3)\n",
    "print(table6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid        ssr  df_diff    ss_diff         F    Pr(>F)\n",
      "0      18.0  45.568297      0.0        NaN       NaN       NaN\n",
      "1      17.0  34.707653      1.0  10.860644  5.319603  0.033949\n"
     ]
    }
   ],
   "source": [
    "# is there any effect of MINORITY on slope\n",
    "table7 = anova_lm(min_lm, min_lm2)\n",
    "print(table7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid        ssr  df_diff  ss_diff         F    Pr(>F)\n",
      "0      17.0  34.707653      0.0      NaN       NaN       NaN\n",
      "1      16.0  31.655473      1.0  3.05218  1.542699  0.232115\n"
     ]
    }
   ],
   "source": [
    "# is it just the slope or both?\n",
    "table8 = anova_lm(min_lm2, min_lm4)\n",
    "print(table8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## One-way ANOVA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "try:\n",
    "    rehab_table = pd.read_csv('rehab.table')\n",
    "except:\n",
    "    url = 'http://stats191.stanford.edu/data/rehab.csv'\n",
    "    rehab_table = pd.read_table(url, delimiter=\",\")\n",
    "    rehab_table.to_csv('rehab.table')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(8,6))\n",
    "fig = rehab_table.boxplot('Time', 'Fitness', ax=ax, grid=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              df  sum_sq     mean_sq          F    PR(>F)\n",
      "C(Fitness)   2.0   672.0  336.000000  16.961538  0.000041\n",
      "Residual    21.0   416.0   19.809524        NaN       NaN\n",
      "    Intercept  C(Fitness)[T.2]  C(Fitness)[T.3]\n",
      "0         1.0              0.0              0.0\n",
      "1         1.0              0.0              0.0\n",
      "2         1.0              0.0              0.0\n",
      "3         1.0              0.0              0.0\n",
      "4         1.0              0.0              0.0\n",
      "5         1.0              0.0              0.0\n",
      "6         1.0              0.0              0.0\n",
      "7         1.0              0.0              0.0\n",
      "8         1.0              1.0              0.0\n",
      "9         1.0              1.0              0.0\n",
      "10        1.0              1.0              0.0\n",
      "11        1.0              1.0              0.0\n",
      "12        1.0              1.0              0.0\n",
      "13        1.0              1.0              0.0\n",
      "14        1.0              1.0              0.0\n",
      "15        1.0              1.0              0.0\n",
      "16        1.0              1.0              0.0\n",
      "17        1.0              1.0              0.0\n",
      "18        1.0              0.0              1.0\n",
      "19        1.0              0.0              1.0\n",
      "20        1.0              0.0              1.0\n",
      "21        1.0              0.0              1.0\n",
      "22        1.0              0.0              1.0\n",
      "23        1.0              0.0              1.0\n"
     ]
    }
   ],
   "source": [
    "rehab_lm = ols('Time ~ C(Fitness)', data=rehab_table).fit()\n",
    "table9 = anova_lm(rehab_lm)\n",
    "print(table9)\n",
    "\n",
    "print(rehab_lm.model.data.orig_exog)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                   Time   R-squared:                       0.618\n",
      "Model:                            OLS   Adj. R-squared:                  0.581\n",
      "Method:                 Least Squares   F-statistic:                     16.96\n",
      "Date:                Tue, 24 Dec 2019   Prob (F-statistic):           4.13e-05\n",
      "Time:                        14:57:48   Log-Likelihood:                -68.286\n",
      "No. Observations:                  24   AIC:                             142.6\n",
      "Df Residuals:                      21   BIC:                             146.1\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "===================================================================================\n",
      "                      coef    std err          t      P>|t|      [0.025      0.975]\n",
      "-----------------------------------------------------------------------------------\n",
      "Intercept          38.0000      1.574     24.149      0.000      34.728      41.272\n",
      "C(Fitness)[T.2]    -6.0000      2.111     -2.842      0.010     -10.390      -1.610\n",
      "C(Fitness)[T.3]   -14.0000      2.404     -5.824      0.000     -18.999      -9.001\n",
      "==============================================================================\n",
      "Omnibus:                        0.163   Durbin-Watson:                   2.209\n",
      "Prob(Omnibus):                  0.922   Jarque-Bera (JB):                0.211\n",
      "Skew:                          -0.163   Prob(JB):                        0.900\n",
      "Kurtosis:                       2.675   Cond. No.                         3.80\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "print(rehab_lm.summary())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Two-way ANOVA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "try:\n",
    "    kidney_table = pd.read_table('./kidney.table')\n",
    "except:\n",
    "    url = 'http://stats191.stanford.edu/data/kidney.table'\n",
    "    kidney_table = pd.read_csv(url, delim_whitespace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Explore the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Days</th>\n",
       "      <th>Duration</th>\n",
       "      <th>Weight</th>\n",
       "      <th>ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>6.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>8.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Days  Duration  Weight  ID\n",
       "0   0.0         1       1   1\n",
       "1   2.0         1       1   2\n",
       "2   1.0         1       1   3\n",
       "3   3.0         1       1   4\n",
       "4   0.0         1       1   5\n",
       "5   2.0         1       1   6\n",
       "6   0.0         1       1   7\n",
       "7   5.0         1       1   8\n",
       "8   6.0         1       1   9\n",
       "9   8.0         1       1  10"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kidney_table.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Balanced panel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfcAAAFzCAYAAAAjVEDpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xmc1WP/x/HXpeWuZCspW7JnyzYIlQoh2bKEUFkiRLhR6r5JIj9kiQhpSlHZW7Rq32RalcotSqU07XtTM9fvj8+MklnOzJxzvmd5Px+PeczMme9MHzPHvOe6vtf1uZz3HhEREUkc+wVdgIiIiISXwl1ERCTBKNxFREQSjMJdREQkwSjcRUREEozCXUREJMEo3EVERBKMwl1ERCTBKNxFREQSjMJdREQkwZQMuoCiOvTQQ321atWCLkNERCRqZsyYscZ7X6mg6+I23KtVq0ZaWlrQZYiIiESNc25pKNdpWl5ERCTBKNxFREQSjMJdREQkwcTtPffc7Nq1i+XLl7Njx46gSym0MmXKcNRRR1GqVKmgSxERkTiXUOG+fPlyDjjgAKpVq4ZzLuhyQua9Z+3atSxfvpxjjz026HJERCTOJdS0/I4dO6hYsWJcBTuAc46KFSvG5YyDiIjEnoQKdyDugj1HvNYtIiKxJ+HCfV/NmzfnrLPOIiUlhQ8++KDYX2/cuHEsWbLkb4+tWrWKLl26FPtri4iIhEPChzvA22+/zYgRI+jYsSNz584t1tfKLdyrVKlC27Zti/V1RUREwiUpwh2gYsWKXH311dSvX/+vcH7uuef+CuumTZvSokULWrRoAcAff/xBrVq1qF27Nu3btwegRYsWpKam0qZNG5o2bfrX116yZAnNmzf/6/1169ZxzTXXULt2bdq0aQPYDMLzzz9P7dq1ueiii9i+fXt0/sNFRCTpJE24gwX8hg0bcv3Y4MGDuf/+++nVqxcAK1asoEuXLgwbNozBgwcD0KtXL5o3b84bb7xBv3798vx3XnzxRW699VYmTpzIxo0bGT58OABbtmxh4sSJVK9enVmzZoX5v05ERMQk1Fa4gqxbt44KFSr89f7eo+cGDRpQs2bNv94vWbIkHTt2pHz58mzevLlQ/85PP/3EAw88AMAFF1zAggULAGjWrBkAVatWJSMjo8j/HSIiIvlJmpH7hg0bGDZsGGeddRbp6elkZmYyatSovz5evnz5v13ftWtX2rVrx4cffvi3lexly5Zl27ZtgO1Pz81pp53GtGnTAJg2bRqnnXYaAPvvv39Y/5tERERykxTh3rp1a6688kpefvll2rZty9NPP02rVq044YQT8vycRo0a8cADD3DttddSrlw5VqxYAcCNN95Ily5dqFmzJosXL871c9u1a0f//v2pVasWBx98MA0aNIjIf5eIiEhuXF6jz1iXkpLi9z3ydcGCBZxyyikBVVR88V6/iIhElnNuhvc+paDrkmLkLiIikkwU7vsaOxaqVbPXIiIicUjhvrexY6FRI1i61F4r4EVEJA4p3HPkBHv2Sni2bVPAi4gkqzifxVW4wz+DPYcCXkQk+STALK7CPa9gzxGGgP/zzz+pXbt2kT9fRESiJEFmcZM73AsK9hzF+OGuX7+eZs2asXXr1iIWKSIiUZFAs7jJ0362TRuYPXvP++vXw7x5kJUV2udv2waXXQannw6HHGKPnXUWvPFGvp9WokQJBgwYwHXXXVfEwkVEJOJCncUdMgTq1YtubUWQvCP3RYtCD/YcWVn2eYVw4IEHctBBBxXu3xERkeiJwixutCXPyH3fEXaoP8y9lSsXN3+1iYhICAqbBXEygk/ekXu9evbDKVcutOsV7CIiiadFi8IN8sCub9EiMvWESfKGO4Qe8Ap2EZHE1KsXlC1buM8pV84+L4Yld7hDwQEfpmAfN25csT5fRETCzHvby16qVOifEyeDPYU75B3wcfJDFBGRQpo3D+rUsen100+HDz5IqFlchXuOfQM+jn6IIiISoi1b4Kmn4OyzYcEC6NkTJk6Ee++NyixutIQ93J1zBznnhjnnRjrnvnLOlc7lmpLOud+dc+OyX87Ifryjc+4H59w74a4rJDkBf8wxcfVDFBGRAngPX30Fp54Kr7wCzZvb1ua774b9sqMwgWZxIzFybwp09d43AFYBV+ZyTQ3gU+993eyXH51z5wK1gPOB1c65yyJQW4FWVq/HJccsYdUp8fNDFBGRfPz2G1xzDTRubE3IJk+2afiKFf95bYLM4oY93L333b33o7LfrQSszuWymkAj59x051xP51xJ4BLgC++9B0YAgTRj79QJJk2y1yIiEsd27oTOnW20Pn48dO0KM2bARRfl/3kJMIsbsXvuzrkLgUO899Ny+fAPwGXe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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "kt = kidney_table\n",
    "plt.figure(figsize=(8,6))\n",
    "fig = interaction_plot(kt['Weight'], kt['Duration'], np.log(kt['Days']+1),\n",
    "        colors=['red', 'blue'], markers=['D','^'], ms=10, ax=plt.gca())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You have things available in the calling namespace available in the formula evaluation namespace"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   df_resid        ssr  df_diff   ss_diff        F    Pr(>F)\n",
      "0      56.0  29.624856      0.0       NaN      NaN       NaN\n",
      "1      54.0  28.989198      2.0  0.635658  0.59204  0.556748\n",
      "   df_resid        ssr  df_diff    ss_diff          F    Pr(>F)\n",
      "0      58.0  46.596147      0.0        NaN        NaN       NaN\n",
      "1      56.0  29.624856      2.0  16.971291  16.040454  0.000003\n",
      "   df_resid        ssr  df_diff   ss_diff         F   Pr(>F)\n",
      "0      57.0  31.964549      0.0       NaN       NaN      NaN\n",
      "1      56.0  29.624856      1.0  2.339693  4.422732  0.03997\n"
     ]
    }
   ],
   "source": [
    "kidney_lm = ols('np.log(Days+1) ~ C(Duration) * C(Weight)', data=kt).fit()\n",
    "\n",
    "table10 = anova_lm(kidney_lm)\n",
    "\n",
    "print(anova_lm(ols('np.log(Days+1) ~ C(Duration) + C(Weight)',\n",
    "                data=kt).fit(), kidney_lm))\n",
    "print(anova_lm(ols('np.log(Days+1) ~ C(Duration)', data=kt).fit(),\n",
    "               ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)',\n",
    "                   data=kt).fit()))\n",
    "print(anova_lm(ols('np.log(Days+1) ~ C(Weight)', data=kt).fit(),\n",
    "               ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)',\n",
    "                   data=kt).fit()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Sum of squares\n",
    "\n",
    " Illustrates the use of different types of sums of squares (I,II,II)\n",
    " and how the Sum contrast can be used to produce the same output between\n",
    " the 3.\n",
    "\n",
    " Types I and II are equivalent under a balanced design.\n",
    "\n",
    " Do not use Type III with non-orthogonal contrast - ie., Treatment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                   df     sum_sq   mean_sq          F    PR(>F)\n",
      "C(Duration, Sum)                  1.0   2.339693  2.339693   4.358293  0.041562\n",
      "C(Weight, Sum)                    2.0  16.971291  8.485645  15.806745  0.000004\n",
      "C(Duration, Sum):C(Weight, Sum)   2.0   0.635658  0.317829   0.592040  0.556748\n",
      "Residual                         54.0  28.989198  0.536837        NaN       NaN\n",
      "                                    sum_sq    df          F    PR(>F)\n",
      "C(Duration, Sum)                  2.339693   1.0   4.358293  0.041562\n",
      "C(Weight, Sum)                   16.971291   2.0  15.806745  0.000004\n",
      "C(Duration, Sum):C(Weight, Sum)   0.635658   2.0   0.592040  0.556748\n",
      "Residual                         28.989198  54.0        NaN       NaN\n",
      "                                     sum_sq    df           F        PR(>F)\n",
      "Intercept                        156.301830   1.0  291.153237  2.077589e-23\n",
      "C(Duration, Sum)                   2.339693   1.0    4.358293  4.156170e-02\n",
      "C(Weight, Sum)                    16.971291   2.0   15.806745  3.944502e-06\n",
      "C(Duration, Sum):C(Weight, Sum)    0.635658   2.0    0.592040  5.567479e-01\n",
      "Residual                          28.989198  54.0         NaN           NaN\n"
     ]
    }
   ],
   "source": [
    "sum_lm = ols('np.log(Days+1) ~ C(Duration, Sum) * C(Weight, Sum)',\n",
    "            data=kt).fit()\n",
    "\n",
    "print(anova_lm(sum_lm))\n",
    "print(anova_lm(sum_lm, typ=2))\n",
    "print(anova_lm(sum_lm, typ=3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                               df     sum_sq   mean_sq          F    PR(>F)\n",
      "C(Duration, Treatment)                        1.0   2.339693  2.339693   4.358293  0.041562\n",
      "C(Weight, Treatment)                          2.0  16.971291  8.485645  15.806745  0.000004\n",
      "C(Duration, Treatment):C(Weight, Treatment)   2.0   0.635658  0.317829   0.592040  0.556748\n",
      "Residual                                     54.0  28.989198  0.536837        NaN       NaN\n",
      "                                                sum_sq    df          F    PR(>F)\n",
      "C(Duration, Treatment)                        2.339693   1.0   4.358293  0.041562\n",
      "C(Weight, Treatment)                         16.971291   2.0  15.806745  0.000004\n",
      "C(Duration, Treatment):C(Weight, Treatment)   0.635658   2.0   0.592040  0.556748\n",
      "Residual                                     28.989198  54.0        NaN       NaN\n",
      "                                                sum_sq    df          F    PR(>F)\n",
      "Intercept                                    10.427596   1.0  19.424139  0.000050\n",
      "C(Duration, Treatment)                        0.054293   1.0   0.101134  0.751699\n",
      "C(Weight, Treatment)                         11.703387   2.0  10.900317  0.000106\n",
      "C(Duration, Treatment):C(Weight, Treatment)   0.635658   2.0   0.592040  0.556748\n",
      "Residual                                     28.989198  54.0        NaN       NaN\n"
     ]
    }
   ],
   "source": [
    "nosum_lm = ols('np.log(Days+1) ~ C(Duration, Treatment) * C(Weight, Treatment)',\n",
    "            data=kt).fit()\n",
    "print(anova_lm(nosum_lm))\n",
    "print(anova_lm(nosum_lm, typ=2))\n",
    "print(anova_lm(nosum_lm, typ=3))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
